package com.diyizu.youdianda.serviceImpl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.diyizu.youdianda.dto.YddCateDto;
import com.diyizu.youdianda.entity.YddCate;
import com.diyizu.youdianda.mapper.YddCateMapper;
import com.diyizu.youdianda.service.YddCateService;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

@Service
public class YddCateServiceImpl extends ServiceImpl<YddCateMapper, YddCate> implements YddCateService {

    //分类列表-全部
    @Override
    public YddCateDto all(String catename, Integer page, Integer limit) {
        //分页构造器
        Page<YddCate> yddCatePage = new Page<>();
        //有条件就拼接
        LambdaQueryWrapper<YddCate> lqw = new LambdaQueryWrapper<>();
        lqw.like(StringUtils.isNotEmpty(catename), YddCate::getCatename, catename);
        Page<YddCate> catePage = this.page(yddCatePage, lqw);

        //将分页数据放入集合中
        ArrayList<YddCate> yddCates = new ArrayList<>();
        for (YddCate record : catePage.getRecords()) {
            yddCates.add(record);
        }
        //返回类型为YddCateDto类型
        YddCateDto yddCateDto = new YddCateDto();
        yddCateDto.setCount(catePage.getTotal());   //总计数
        yddCateDto.setTotalPages(catePage.getPages());  //总页数
        yddCateDto.setPageSize(yddCatePage.getSize());  //每页几条
        yddCateDto.setCurrentPage(catePage.getCurrent());   //当前页
        yddCateDto.setData(yddCates);

        //返回结果
        return yddCateDto;

    }
}
